/************************************************************************/
/*    Author: Scott Bevin                                               */
/************************************************************************/

#pragma once

#include <list>
#include <algorithm>
#include "..\SystemComponent.h"

namespace XF
{
	class GameScreen;

	class GameScreenManagerComponent :
		public SystemComponent
	{
	private:
		std::vector<GameScreen*> mGameScreens;

	protected:
		bool OnInitialise();
		void OnHandleInput(double dT, Input *input);
		void OnUpdate(double dT);
		void OnShutDown();

	public:
		GameScreenManagerComponent(Application *ownerApp);
		~GameScreenManagerComponent();

		void AddNewScreen(GameScreen* screen);
		void AddNewScreenUnderneathCurrentScreen(GameScreen* newScreen, GameScreen* currentScreen);
		void KillAllScreens();
	};
}
